/*
 * @Author: huxukang
 * @Date: 2025-01-17 16:33:08
 * @LastEditors: huxukang
 * @LastEditTime: 2025-01-17 17:43:06
 * @FilePath: \hu-package\utilsBox\dataUtils.js
 * @Description: 
 * 
 * Copyright (c) 2025 by huxk, All Rights Reserved. 
 */


/**
 * 深度克隆对象
 * @param {any} data - 需要克隆的数据
 * @returns {any} 返回克隆data
 */
function deepClone(data) {
  if(data === null || typeof data !== 'object') {
    return data;
  }

  // 处理特殊情况：Date 和 RegExp 等类型
  if (data instanceof Date) {
    // 克隆 Date 对象
    return new Date(data); 
  }

  if (data instanceof RegExp) {
    // 克隆 RegExp 对象
    return new RegExp(data); 
  }

  let newData = {};

  if(Array.isArray(data)) {
    newData = []
  }

  for(let key in data) {
   
    if(data[key] !== null && typeof data[key] === 'object') {
      newData[key] = deepClone(data[key]);
    }else {
      newData[key] = data[key];
    }
  }

  return newData;
};


export default {
  deepClone,
};